package com.jinxin.platform.cdacsrecord.core.service;

import com.jinxin.platform.cdacsrecord.core.pojo.domains.*;
import com.jinxin.platform.cdacsrecord.core.pojo.entity.ResultEntity;
import com.jinxin.platform.cdacsrecord.core.pojo.vo.ResultVO;
import com.jinxin.platform.cdacsrecord.core.pojo.vo.ResultVO2;

import java.io.File;
import java.util.List;

/**
 * All rights Reserved, Designed By www.beonelot.com
 *
 * @version: V1.0
 * @Copyright: www.beonelot.com Inc. All rights reserved.
 * @Description：
 * @Date: 2020-07-21
 * @Author: Lingnan
 **/
public interface RestTemplateService{

    String getEtoToken(boolean flag);

    String getEtoTicket(String companyId);
    // 小区管理(增删改)
    ResultVO housingEstateOperate(String oper, JurenAcsCommunityInfo communityInfo);
    // 小区列表
    ResultEntity getCommunities(Integer bopType);
    // 楼栋管理(增删改)
    ResultVO2 buildingblockOperate(String oper, AcsControlBlockInfoDO blockInfoDO);
    // 房间管理(增删改)
    ResultVO2 buildingunitOperate(String oper, AcsControlRoomInfoDO roomInfoDO);
    // 房间查询
    ResultEntity buildingunitSearch(Integer page, Integer rows, String parentId, String companyId);
    // 人员管理(增删改)-业主
    ResultVO2 wyOwnerYcOperate(String oper, AcsControlUserInfoDO userInfoDO);
    // 用户人脸照片编辑
    ResultVO2 extractFileFaceFeature(String oper,File faceImg, String companyId, String userId,String fafId);
    // 查询用户人脸照片列表
    String[] queryFaces(String companyId, String userId);
    // 删除用户人脸照片
    ResultVO2 removeFases(String companyId,String fafId);
    // 查询业主
    ResultEntity wyOwnerYcSearch(Integer page, Integer rows, String companyId);
    // 获取业主下成员列表
    List<AcsControlUserInfoDO> listMemebersById(String parentId, String companyId);
    // 人员管理(增删改)-非业主
    ResultVO2 wyOwnerOperate(String oper, AcsControlUserInfoDO userInfoDO);
    // IC卡管理
    ResultVO2 iCCardSubmit(String oper, JurenIcCardInfo icCardInfo);

    ResultEntity listAllCard(Integer page, Integer rows, JurenIcCardInfo icCardInfo);

    ResultEntity cardStatus(JurenIcCardInfo icCardInfo);
    // 门禁管理
    ResultEntity listDoorDevices(DeviceParam param,String companyId);
    // 小区楼栋树列表
    ResultEntity listBuildingAreaTree(String companyId);

    ResultEntity initGateLock(GateLockInfo gateLockInfo,String companyId);
    // 开门记录
    ResultEntity listOpenRecord(OpenRecordParam param,String companyId);
    // 陌生人抓拍记录
    ResultEntity listCaptureRecord(CaptureRecordParam param,String companyId);
    // 获取行政区域树
    ResultEntity getAreaTree();
}
